23227
14726
Gesloten. Deze vraag voldoet niet aan de Stack Overflow-richtlijnen. Het accepteert momenteel geen antwoorden.
Wilt u deze vraag verbeteren? Werk de vraag bij zodat deze relevant is voor Stack Overflow.
4 jaar geleden gesloten.
Verbeter deze vraag
Ik bouw een glanzende app die meerdere tekstbestanden verwerkt die door een gebruiker zijn geselecteerd.
De output is een enorm dataframe met miljoenen rijen en tientallen kolommen.
Ik ben nu geïnteresseerd om een ​​gebruiker interactief rijen te laten filteren, kolommen te selecteren en kolommen samen te vatten (door te kiezen uit een lijst met functies zoals gemiddelde, sd, max, min, som, enz ...). Het resultaat zou een kleiner dataframe zijn met een samenvatting van de gegevens per gebruikersselectie - in feite moet ik een GUI maken die een basisfunctionaliteit van de dplyr-bibliotheek implementeert.
Over het algemeen weet ik hoe ik het moet doen door handmatig een aantal GUI-elementen te maken en deze in een serverfunctie in te voeren met een aantal dplyr-opdrachten. Aangezien dit een vrij standaardfunctionaliteit lijkt te zijn (GUI die een dataframe filtert en samenvat), vraag ik me, voordat ik het helemaal opnieuw begin te bouwen, af of er iets "van de plank" is dat ik kan gebruiken zoals het is of als mijn uitgangspunt . 
Ik weet dat je zei dat rpivotTable niet helemaal was wat je zoekt, maar ik denk dat het kan worden geconfigureerd om een ​​deel van het zware werk te doen,
Hier is een voorbeeld (gebruik rpivotTable voor de manipulatie, DT om het data.frame weer te geven, rvest om de innerHTML van de DOM te ontleden, er is misschien een beter dataformaat om het table-object door te geven vanaf de clientzijde, maar dit is een proof of concept ):
ui.R
bibliotheek (glanzend)
bibliotheek (DT)
bibliotheek (rpivotTable)
FullPage <- fluidPage (
DT :: dataTableOutput ('aSummaryTable'),
rpivotTableOutput ('RESULTATEN')
​
Volledige pagina
server.R:
bibliotheek (glanzend)
bibliotheek (rpivotTable)
bibliotheek (DT)
bibliotheek (rvest)
functie (invoer, uitvoer, sessie) {
# Maak enkele voorbeeldgegevens
qbdata <- reactief ({
expand.grid (LETTERS, 1: 3)
​
# Maak de html schoon en bewaar als reactief
summarydf <- eventReactive (voer $ myData, {
voer $ myData%>% in
read_html%>%
html_table (fill = TRUE)%>%
# Blijkt dat er twee tabellen zijn in een rpivotTable, we willen de tweede
. [[2]]
​
# show df als DT :: datatable
uitvoer $ aSummaryTable <- DT :: renderDataTable ({
datatable (summarydf (), rownames = FALSE)
​
# Telkens wanneer de configuratie wordt vernieuwd, belt u terug met de inhoud van de tabel
uitvoer $ RESULTS <- renderRpivotTable ({
rpivotTable (
qbdata (),
onRefresh =
htmlwidgets :: JS ("function (config) {
Shiny.onInputChange ('myData', document.getElementById ('RESULTS'). InnerHTML);
​
​
​
​
​
Niet het antwoord waar je naar zoekt? Blader door andere vragen met de tag r dplyr glanzend of stel uw eigen vraag.